柔軟なシステムの基盤は、オブジェクトが従わなければならない厳密な内部 契約 またはインターフェースを定義することにあります。この文脈では、各セルオブジェクトが以下の3つの特定メソッドを保証する テーブルインターフェース という仕様を定義しています。 minWidth()、 minHeight()、および draw(width, height)。
1. インターフェース契約
これらのメソッドを標準化することで、レイアウトロジックは個々のセルの内部データ型を知らなくても、グローバルな行と列の寸法を計算できます。これは インターフェースベースのポリモーフィズム。
2. TextCellの実装
The TextCell コンストラクタは文字列を一行ずつ配列に分割して原始入力を準備します。これにより、レンダリングフェーズの複雑さがインスタンス化フェーズに移ります。
this.text = text.split("\n");
3. 確定的な描画
The draw(width, height) メソッドは、 repeat() ヘルパーを使用して、すべてのセル出力が完全にパディングされることを保証します。これにより、コンテンツ長に関係なく垂直方向および水平方向の整列が維持されます。
$$\text{パディング} = \text{幅} - \text{行の長さ}$$
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>